package cn.maxxieyi.aichatbot.dto;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class LinkAiChatRequest extends AiChatRequest {

    @JSONField(serialize=false)
    private String token;

    /**
     * 应用code
     */
    @JSONField(name="app_code")
    private String appCode;

    /**
     * 用户消息
     */
    private List<MessageVO> messages;

    /**
     * 模型名称，非必填
     */
    private String model;

    /**
     * 控制模型采样范围，非必填
     */
    @JSONField(name="top_p")
    private Integer topP ;

    /**
     * 温度，非必填
     */
    private Float temperature;

    /**
     * 该参数越大则更倾向于产生不同的内容
     */
    @JSONField(name="frequency_penalty")
    private Float frequencyPenalty;

    /**
     * 该参数越大则更倾向于产生不同的内容
     */
    @JSONField(name="presence_penalty")
    private Float presencePenalty;

    /**
     * 是否流式输出，非必填
     */
    private Boolean stream;

    @Builder
    @Data
    public static class MessageVO {
        /**
         * 角色
         */
        private String role;
        /**
         * 消息内容
         */
        private String content;
    }
}
